import random
import numpy as np

def generate_random_array(size, min_value=1, max_value=1000):
    """
    生成指定大小的随机数组
    :param size: 数组大小
    :param min_value: 最小值
    :param max_value: 最大值
    :return: 随机数组
    """
    return [random.randint(min_value, max_value) for _ in range(size)]

def generate_nearly_sorted_array(size, swap_count):
    """
    生成接近有序的数组
    :param size: 数组大小
    :param swap_count: 交换次数
    :return: 接近有序的数组
    """
    arr = list(range(1, size + 1))
    for _ in range(swap_count):
        i = random.randint(0, size - 1)
        j = random.randint(0, size - 1)
        arr[i], arr[j] = arr[j], arr[i]
    return arr

def generate_reversed_array(size):
    """
    生成逆序数组
    :param size: 数组大小
    :return: 逆序数组
    """
    return list(range(size, 0, -1))

def save_array_to_file(arr, filename):
    """
    将数组保存到文件
    :param arr: 要保存的数组
    :param filename: 文件名
    """
    with open(filename, 'w') as f:
        f.write(' '.join(map(str, arr)))

if __name__ == "__main__":
    # 生成示例数据
    sizes = [1000, 10000, 100000]
    for size in sizes:
        # 生成随机数组
        random_arr = generate_random_array(size)
        save_array_to_file(random_arr, f'random_{size}.txt')
        
        # 生成接近有序数组
        nearly_sorted_arr = generate_nearly_sorted_array(size, int(size * 0.1))
        save_array_to_file(nearly_sorted_arr, f'nearly_sorted_{size}.txt')
        
        # 生成逆序数组
        reversed_arr = generate_reversed_array(size)
        save_array_to_file(reversed_arr, f'reversed_{size}.txt')
